package com.hsmpay.utils;

import java.util.HashMap;
import java.util.Map;

public class YLCode {
	private static Map<String,String> ylCodeMap = new HashMap<String,String>();
	
	static{
		ylCodeMap.put("00", "成功");
		ylCodeMap.put("01", "请联系发卡行");
		ylCodeMap.put("02", "请联系发卡行");//查发卡行的特殊条件
		ylCodeMap.put("03", "卡号不存在");//无效商户
		ylCodeMap.put("04", "没收卡，请联系收单行");//无效商户
		ylCodeMap.put("05", "请联系发卡行");//发卡不予承兑
		ylCodeMap.put("06", "请联系发卡行");//发卡行故障
		ylCodeMap.put("07", "没收卡，请联系收单行");//特殊条件下没收卡
		ylCodeMap.put("09", "请重试");//请求正在处理中
		ylCodeMap.put("12", "请重试");//发卡行不支持的交易
		ylCodeMap.put("13", "交易金额超限，请重试");//发卡行不支持的交易
		ylCodeMap.put("14", "无效卡号，请联系发卡行");//卡种未在中心登记或读卡号有误
		ylCodeMap.put("15", "无效卡号，请联系发卡行");//此发卡行未与中心开通业务
		ylCodeMap.put("19", "请联系发卡行");//刷卡读取数据有误，可重新刷卡
		ylCodeMap.put("20", "请联系发卡行");//无效应答
		ylCodeMap.put("21", "请联系发卡行");//不做任何处理
		ylCodeMap.put("22", "操作有误，请重试");//状态与中心不符，可重新签到
		ylCodeMap.put("23", "请联系发卡行");//不可接受的交易费
		ylCodeMap.put("25", "请联系发卡行");//发卡行未能找到有关记录 
		ylCodeMap.put("30", "请重试");//格式错误
		ylCodeMap.put("31", "此卡不能受理");//此发卡方未与中心开通业务
		ylCodeMap.put("33", "过期卡，请联系发卡行");//过期的卡，操作员可以没收 
		ylCodeMap.put("34", "没收卡，请联系收单行");//有作弊嫌疑的卡，操作员可以没收  
		ylCodeMap.put("35", "没收卡，请联系收单行");//有作弊嫌疑的卡，操作员可以没收  受卡方与安全保密部门联系
		ylCodeMap.put("36", "此卡有误，请换卡重试");//有作弊嫌疑的卡，操作员可以没收  受限制的卡
		ylCodeMap.put("37", "没收卡，请联系收单行");//有作弊嫌疑的卡，操作员可以没收  受卡方呼受理方安全保密部门(没收卡)
		ylCodeMap.put("38", "密码错误次数超限");//密码错次数超限，操作员可以没收
		ylCodeMap.put("39", "请联系发卡行");//无此信用卡账户
		ylCodeMap.put("40", "请联系发卡行");//发卡行不支持的交易类型
		ylCodeMap.put("41", "挂失的卡，请联系发卡行");//
		ylCodeMap.put("42", "无此账户，请联系发卡行");//
		ylCodeMap.put("43", "被窃卡,请联系发卡行");//
		ylCodeMap.put("44", "请联系发卡行");//无此投资账户 可能刷卡操作有误
		ylCodeMap.put("51", "余额不足");//余额不足，请查询
		ylCodeMap.put("52", "请联系发卡行");//无此支票账户
		ylCodeMap.put("53", "无此储蓄卡账户，请联系发卡行");//无此支票账户
		ylCodeMap.put("54", "过期卡，请联系发卡行");//过期卡
		ylCodeMap.put("55", "不正确的密码");//不正确的PIN
		ylCodeMap.put("56", "发卡行找不到此账户");//
		ylCodeMap.put("57", "不允许持卡人进行的交易，请联系发卡行");//
		ylCodeMap.put("58", "终端无效，请联系收单行或银联");//
		ylCodeMap.put("59", "请联系发卡行");//有作弊嫌疑
		ylCodeMap.put("60", "请联系发卡行");//受卡方与安全保密部门联系
		ylCodeMap.put("61", "一次交易的金额太大");//金额太大
		ylCodeMap.put("62", "受限制的卡，请联系发卡行");//受限制的卡
		ylCodeMap.put("63", "违反安全保密规定，请联系发卡行");//违反安全保密规定
		ylCodeMap.put("64", "原始金额不正确，请联系发卡行");//原始金额不正确
		ylCodeMap.put("65", "超出取款次数限制，请联系发卡行");//超出取款次数限制
		ylCodeMap.put("66", "请联系收单行或银联");//
		ylCodeMap.put("67", "没收卡，请联系收单行或银联");//
		ylCodeMap.put("68", "交易超时，请重试");//
		ylCodeMap.put("75", "密码错误次数超限");//
		ylCodeMap.put("77", "请向网络中心签到");//
		ylCodeMap.put("79", "请稍后重试");//POS终端重传脱机数据
		ylCodeMap.put("90", "请稍后重试");//日期切换正在处理
		ylCodeMap.put("91", "请稍后重试");//发卡行或银联不能操作
		ylCodeMap.put("92", "请稍后重试");//金融机构或中间网络设施找不到或无法达到
		ylCodeMap.put("93", "请联系发卡行");//交易违法、不能完成
		ylCodeMap.put("94", "请稍后重试");//重复交易
		ylCodeMap.put("95", "请稍后重试");//调节控制错
		ylCodeMap.put("96", "发卡方或网络中心出现故障，请稍后重试");//
		ylCodeMap.put("97", "终端未登记，请联系收单行或银联");//
		ylCodeMap.put("98", "交易超时，请重试");//银联收不到发卡行应答
		ylCodeMap.put("99", "PIN格式错");//
		ylCodeMap.put("A0", "MAC校验错");//
	}
	
	/**
	 * 获得银联pos 描述
	 * @param code
	 * @return
	 */
	public static String getMsg(String code){
		return ylCodeMap.get(code);
	}
}
